package org.jugile.demo.domain;


import java.lang.reflect.Method;
import org.jugile.util.*;
import org.jugile.daims.BoCollection;

import org.jugile.demo.common.*;


public class VisitCollection extends BoCollection<Visit> {

	public VisitCollection() { super(Visit.class); }

	
	// ----- set operations ------
	public VisitCollection and(VisitCollection oc) {
		return (VisitCollection)and(new VisitCollection(), oc);
	}
	public VisitCollection or(VisitCollection oc) {
		return (VisitCollection)or(new VisitCollection(), oc);
	}	
	public VisitCollection xor(VisitCollection oc) {
		return (VisitCollection)xor(new VisitCollection(), oc);
	}	
	public VisitCollection not(VisitCollection oc) {
		return (VisitCollection)not(new VisitCollection(), oc);
	}	

	public VisitCollection keep(String mname) {
		return (VisitCollection)keep(new VisitCollection(), mname);
	}	
	public VisitCollection not(String mname) {
		return (VisitCollection)not(new VisitCollection(), mname);
	}	


	// ---- attribute finders ----
	public VisitCollection byStart(Time v) { q("==", "start", v); return this; }
	public VisitCollection byStart(String op, Time v) { q(op, "start", v); return this; }
	public VisitCollection byEnd(Time v) { q("==", "end", v); return this; }
	public VisitCollection byEnd(String op, Time v) { q(op, "end", v); return this; }
	public VisitCollection byKey(String v) { q("==", "key", v); return this; }
	public VisitCollection byKey(String op, String v) { q(op, "key", v); return this; }
	public VisitCollection byNkey(int v) { q("==", "nkey", v); return this; }
	public VisitCollection byNkey(String op, int v) { q(op, "nkey", v); return this; }
 
 
	// --- n - 1 ----
	public VisitCollection byAuthor(Author v) { q("==", "Author", v); return this; }
	public VisitCollection byLibrary(Library v) { q("==", "Library", v); return this; }
	public VisitCollection byOldAuthor(Author v) { q("==", "oldAuthor", v); return this; }
 

	// ---- filtering finders ----
 
	
}